package main

import (
	"fmt"
	"gorm.io/gorm"
)

// save 是复合动作，可以更新也可以插入。
func main() {
	stu := Student{}
	DB.Session(&gorm.Session{Logger: mysqlLogger}).First(&stu)
	fmt.Println(stu)
	fmt.Println(stu.ID, stu.Name, stu.Age, *stu.Email, stu.Birthday)

	//stu.Age = 10
	//DB.Session(&gorm.Session{
	//	Logger: mysqlLogger,
	//}).Save(&stu) //更新所有

	// UPDATE `t_student` SET `age`=1024 WHERE `id` = 1; Error 1264 (22003): Out of range value for column 'age' at row 1
	//tx := DB.Session(&gorm.Session{Logger: mysqlLogger}).Model(&stu).Update("age", 123)
	//{
	//	if tx.Error != nil {
	//		fmt.Println(tx.Error.Error())
	//	} else {
	//		fmt.Println(tx.RowsAffected)
	//	}
	//}

	// UPDATE `t_student` SET `name`='小明',`age`=11,`email`='xiaoming@163.com',`birthday`='2024-10-11 08:22:13' WHERE `id` = 1
	//stu.Age++
	//DB.Session(&gorm.Session{Logger: mysqlLogger}).Model(&stu).Updates(&stu)

	//直接执行语句
	DB.Session(&gorm.Session{Logger: mysqlLogger}).Exec("update t_student set age=age+1 where id=?", 1)
}
